package com.agri.dto;

import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 农产品价格趋势数据传输对象
 * 用于前端与后端之间的价格趋势数据交互
 *
 * @author Agri-Fin-Sale Team
 * @since 2025-10-31
 */
@Data
public class CropPriceTrendDTO {

    /**
     * 价格趋势ID，更新时必填
     */
    private Long id;

    /**
     * 农产品ID
     */
    @NotNull(message = "农产品ID不能为空")
    private Long cropId;

    /**
     * 价格日期
     */
    @NotNull(message = "价格日期不能为空")
    private Date priceDate;

    /**
     * 市场价格
     */
    @NotNull(message = "市场价格不能为空")
    private BigDecimal marketPrice;

    /**
     * 价格单位
     */
    @Size(max = 20, message = "价格单位长度不能超过20个字符")
    private String priceUnit;

    /**
     * 市场名称
     */
    @Size(max = 100, message = "市场名称长度不能超过100个字符")
    private String marketName;

    /**
     * 地区
     */
    @Size(max = 100, message = "地区长度不能超过100个字符")
    private String region;

    /**
     * 数据来源
     */
    @Size(max = 100, message = "数据来源长度不能超过100个字符")
    private String dataSource;
}